1. Field of the Invention
The present invention relates to methods of interacting and manipulating computer graphics and more particularly, the present invention relates to methods of interacting and manipulating, via display screen initiated instructions, displayed 3-dimensional (3-D) computer graphics. Still more particularly, the present invention relates to interacting and manipulating, via display screen initiated instructions, 3-D computer graphics displayed in a common visualization framework, wherein such 3-D computer graphics are independently rendered therein by a plurality of independent application programs.
2. Brief Description of the Prior Art
Generally, computer graphics interaction and manipulation occurs by a graphic system response to an screen input instruction. Such screen input instructions may be selected and initiated by a user with the aid of an input instruction means, such as a mouse-controlled cursor or light pen. In such instances where a cursor is used, the cursor, which may appear on the screen as an arrow, cross or other similar images, is positioned over the computer graphic object of interest followed by a selected key stroke specific to a desired instruction. This procedure for initiating screen input instructions is sometimes referred to as "point and click".
Traditionally, computer graphic systems suitable for such point and click instructions generally may be grouped as either 2-dimensional or 3-dimensional graphic systems. 2-Dimensional graphic systems generally display computer generated objects in length and width dimensions only, while 3-dimensional graphic systems generally display computer generated objects in length, width and depth dimensions. More advanced 3-dimensional graphic systems may enable the user to selectively rotate displayed computer generated objects so that such objects may be viewed from a plurality of perspectives.
Generally, in the operation of a 2-dimensional (2-D) graphic system, traditional 2-D graphics systems utilize a plurality of application programs for displaying 2-D computer generated objects. Each application program generally is responsible for a distinct rectangular display space which spatially defines a distinct 2-D computer generated object.
However, such 2-D systems have two distinct disadvantages. First, these 2-D systems generally occlude, as opposed to merge, rectangular display space(s) overlaid by other rectangular display space(s). Second, these 2-D systems do not permit the manipulation of the computer generated object within its assigned rectangular display space.
For example, FIG. 1, illustrates a schematic flow chart of a 2-D window graphics system 100. The system 100 includes a first application program (AP') 102 and a second application program (AP") 103. AP' 102 is ultimately responsible for image "A" appearing on screen 118. A" 103 is ultimately responsible for image "B" appearing on screen 118.
When a display command is initiated to display images A and B on screen 118, inputs, via conduits 104 and 106 from AP' 102 and A" 103 respectively, are communicated to the window server 108. The window server 108 preforms at least two functions. First, the window server assigns discrete rectangular spaces (110 and 112) for a computer generated object (CGO) of A and B. Second, the window server generates a List 114.
List 114 associates the 2-D extent of the displayed CGO data of A and B with their respective APs by correlating respective CGO data with corresponding application program identifiers. In this case, the association is between CGO data for image A and the application program identifier for AP' 102, and CGO data for image B and the application program identifier for A" 103. As illustrated in List 114, the 2-D extent of CGO data for images A and B are stored as complete rectangles.
Graphics generation instructions from the window server 108 are relayed via conduit 116 to screen 118. Screen 118 displays within discrete rectangular spaces, 120 and 122 respectively, the images A and B. Conduit 116 also relays and receives inputs and instructions between the window server 108 and screen 118.
As illustrated in FIG. 1, in response to a display command, images A and B appear in spaced apart rectangular spaces 120 and 122 respectively. While additional scene manipulation instruction may reposition rectangular spaces 120 and 122 within the screen 118, images A and B are not manipulatable within their respective spaces. FIGS. 2 and 3 illustrate a 2-D graphic system's response to a partial or complete occlusion of one rectangular space by another.
FIG. 2 is substantially similar to FIG. 1 except that in response to a scene manipulation instruction (SMI), rectangular space 222 is positioned with respect to rectangular space 220 such that rectangular space 222 now occludes the upper right corner of rectangular space 220. As illustrated in FIG. 2, responding to such SMI, List 214 now stores only data for the visual portion of the 2-D space display of 220. In this way, any SMI initiated within space 222 selects only the CGOs within space 222. In other words, a SMI initiated in portions of space 222 occluding portions of space 220 is only responsive to CGOs unique to space 222.
FIG. 3 is substantially similar to FIGS. 1 and 2 except that in response to a SMI, rectangular space 322 now totally eclipses space 320 (not shown). Responding to such SMI, List 314 stores only data for the visual portion of the 2-D space display of 322. As a result, the CGO's in space 320 are non-selectable by an immediately preceding SMI. In other words, any SMI initiated in space 322 selects only the CGO's unique to space 322. For the CGO's in space 320 to become selectable, a portion of space 320 must be visible on screen 318.
Generally, in the operation of traditional 3-dimensional (3-D) graphics systems, such 3-D systems employ a single computer graphics client. Generally, the single computer graphics client includes a plurality of application programs. Each application program is responsible for processing, interacting and manipulating a particular computer graphics object within a display space, such as a screen.
FIG. 4 illustrates a schematic flow chart of a 3-D graphic system 400. The system 400 includes a first application program (AP') 402 and a second application program (AP") 404. AP' 402 is ultimately responsible for image "A" appearing on screen 418 and A" 404 is ultimately responsible for image "B" appearing on screen 418. There is also a communication conduit 406 between AP' 402 and A" 404 the purpose of which will be described in greater detail below.
When a display command is initiated to display images A and B on screen 418, inputs, via conduits 408 and 410 from AP' 402 and AP" 404 respectively, are communicated to a server 412. Within the server 412, a List 414 is generated. List 414 contains discrete computer generated object data (CGO data) for respective application programs. In this example, the discrete computer generated object data relates to images A and B. The function of the List 414 within the server 412 is to maintain the proper spatial relationship between the computer generated objects, as in this example, images A and B appearing on screen 418, of the respective application programs.
Graphics generation instructions from the server 412 are relayed via conduit 416 to the screen 418 whereupon images A and B appear. Conduit 416 also relays and receives inputs and instructions between the server 412 and the screen 418.
As illustrated in FIG. 4, in response to a display command, images A and B appear on screen 418. Additional scene manipulation instructions may reposition A and B, including an instruction to merge A and B as illustrated in FIG. 5.
FIG. 5 is substantially similar to FIG. 4 except that in response to a scene manipulation instruction, images A and B are now merged. As is illustrated in FIG. 5, merger of images A and B result in an over-right of B with respect to A wherein both A and B are visible. In this case, the scene manipulation instruction was to move image B only such that image B merged with image A. This SMI was communicated via conduit 416 to server 412, which in turn communicated the SMI via conduits 408 and 410 to AP' 402 and AP" 404.
In order to process this command, AP' 402 and A" 404 communicate via conduit 406 between themselves. Communication between AP' 402 and A" 404 is required so that the SMI directed to image B, i.e., to alter the position of image B relative to image A, is processed by application program responsible for image B, i.e., A" 404.
As such, it is readily apparent that to correctly process SMIs, traditional 3-D graphic systems require the presence of a common data structure between application programs. The common data structure includes SMI reply methods. These SMI reply methods provide for the sorting and directing of SMIs between application programs and ultimately the processing of the SMI by the application program(s) responsible for the manipulated computer generate object (s).
While FIGS. 4 and 5 illustrate a 3-D graphic system having only two application programs, the complexity of 3-D graphic systems having ten, twenty or even one hundred application programs becomes apparent. However, as a result of such 3-D graphic system architecture, such 3-D systems have three distinct disadvantages.
First, as the number of application programs increases, the complexity of the communication between application programs and common data structure increases. As such, all SMI reply methods within the 3-D system are stored in computer memory albeit that only a fraction of the application programs and corresponding SMI reply methods may be required for a certain task. In other words, the operator is unable to select only those particular application programs required for a certain task thereby conserving computer memory. Such conventional computer graphics systems require all application programs and associated data structure be stored in computer memory. As a result, not only may the computing time for instructions increase, larger and more expensive computing systems may be required.
Second, the addition of an additional application programs to the computer graphics client is a time consuming and expensive undertaking. Third, the integration of two distinct 3-D systems is also a time consuming and expensive undertaking.
As will be appreciated by one skilled in the art, the second and third disadvantages result from the required linkages between application programs within the computer graphics client. The greater the number of application programs the greater the number of linkages between such application programs. Thus, referring back to the 3-D system illustrated in FIG. 4 and 5, if one were to attempt to add an application program to generate an image "C", such application program would have to be linked to AP' 402 and A" 404. In this way resulting set of communications between application programs would be: A-B, A-C, and C-B. Making this task even more formidable for the program attempting such linkage is that to successfully perform the same the programmer would have to have access to and be familiar with the behavior and data structure of AP' 402 and A" 404.
Additionally, as the source listing for such data structures generally are closely guarded by the 3-D software developer, a licensee of such 3-D software requiring the addition of an application program may be unable to perform such modification in-house. In this case, the linkage of the additional application program rests with the discretion of the developer and his hourly consulting rate.